Graphical Overlay Related To Data Mining and Analytics

ABSTRACT

Methods, computer-readable media, and apparatuses provide a graphical overlay for displaying analytic data over at least a portion of a corresponding page. A graphical overlay may be displayed over at least a portion of a page displayed on a graphical user interface according to page data. Data may be inputted into the graphical overlay and analytic data corresponding to the displayed page may be received from a remote server. Also, the graphical overlay may display at least a portion of the analytic data based on the inputted data. The graphical overlay may be built to run as an add-on to a browser or non-browser application or to run as a separate application.

This application claims priority to U.S. Provisional Application Ser.No. 61/601,376 (Attorney Docket No. 007662.00006) filed Feb. 21, 2012,which is herein incorporated by reference in its entirety.

TECHNICAL FIELD OF ART

Aspects of the disclosure generally relate to a graphical overlayrelated to data mining and analytics.

BACKGROUND

Data mining is a field in which data about users is collected andanalyzed for a variety of purposes. Data mining may be performed tocollect/analyze, for example, Internet data such as web analytics. Webanalytics may be obtained when a population of users visits a web pageand/or starts an application that causes certain program instructions tobe executed. Usually, data is collected for web analytics purposesthrough a variety of mechanisms, including the setting of a cookieand/or by running scripts in the HTML document. The scripts may performa variety of functions, including grabbing variables from the documentobject model (DOM) and/or sending back an image request to a datacollection server either internally or externally hosted.

The program instructions for web analytics are generally authored andrun by a variety of vendors, including Omniture™, Google™, Yahoo™, andWebtrends™, among others, in order to be able to capture data such asweb page load times, “mouse overs” (i.e., moving a mouse over aparticular object on the web page), and the page requestor's IP address.Meanwhile, web pages are generally written in Hypertext Markup Language(HTML). They are written using HTML elements that include “tags”surrounded by angle brackets. Information in the tag may tell the webbrowser how to interpret the HTML element (e.g., as text, for insertionof an image into the webpage, for running a script, etc.). These tagscan, among other things, include or can load scripts in languages suchas JavaScript™. A medium complexity web page may include 5-10 tags witha reference to scripting code stored on servers managed by differentvendors.

When a marketer associated with an organization decides that she wantsto change the code to measure and analyze different features, theprocess is often tedious and challenging. In many situations, to performthis update, the marketer must create a new custom variable in theprogram instructions, define what the new variable is, and specify whatdata the modified code must capture for the web page. Since the marketermight not be skilled in how to perform these modifications, she mustinterface with her information technology (IT) department or othersimilar agency. Sometimes, even the IT department may not adequatelyunderstand the syntax of the web analytics program instructions toproperly modify the code, especially given that the myriad web analyticsvendors, advertisers, survey researchers, and marketers all have theirown custom computer code for effectuating the collection of data foranalysis. In other situations, the IT department may not have theappropriate bandwidth to modify the code for deployment on schedule(e.g., for an advertisement campaign deadline, etc.). These problems areonly exacerbated when a client's website has many pages and/or manydifferent types of program instructions for collecting various dataabout a web page visitor.

BRIEF SUMMARY

In light of the foregoing background, the following presents asimplified summary of the present disclosure in order to provide a basicunderstanding of some aspects of the invention. This summary is not anextensive overview of the invention. It is not intended to identify keyor critical elements of the invention or to delineate the scope of theinvention. The following summary merely presents some concepts of theinvention in a simplified form as a prelude to the more detaileddescription provided below.

Aspects of the disclosure address one or more of the issues mentionedabove by disclosing methods, computer readable media, and apparatusesfor providing a graphical overlay for data mining and managing analyticdata.

In some aspects of the disclosure, a graphical overlay may be displayedover at least a portion of a page displayed on a graphical userinterface according to page data. The graphical overlay may receiveinputted data, such as event information indicating a specific type ofanalytic data to be collected. The event information may assist inidentifying program instructions from a library. The identified programinstructions may be modified to enable them to collect the specific typeof analytic data when executed by a processor. These modified programinstructions may be embedded into the page data. The graphical overlaymay display, based on the inputted data, some or all of the analyticdata received from a remote server. The analytic data, in some examples,may be updated in real time.

Of course, the methods and systems of the above-referenced embodimentsmay also include other additional elements, steps, computer-executableinstructions or computer-readable data structures. In this regard, otherembodiments are disclosed and claimed herein as well. The details ofthese and other embodiments of the present invention are set forth inthe accompanying drawings and the description below. Other features andadvantages of the invention will be apparent from the description anddrawings and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and is notlimited in the accompanying figures in which like reference numeralsindicate similar elements and in which:

FIG. 1 is a block diagram of an example computing device that may beused according to an illustrative embodiment of the present disclosure.

FIG. 2 illustrates an example system for implementing methods accordingto the present disclosure.

FIG. 3A illustrates a flow diagram for an example process in accordancewith aspects of the present disclosure.

FIG. 3B illustrates a flow diagram for an example process of generatingrules in accordance with aspects of the present disclosure.

FIG. 4 is an example high level diagram illustrating a function of agraphical overlay in accordance with aspects of the present disclosure.

FIG. 5 is an example high level diagram illustrating another aspect ofthe present disclosure.

FIG. 6 is an example high level diagram illustrating another function ofthe graphical overlay in accordance with aspects of the presentdisclosure.

FIG. 7 illustrates another example system for implementing methodsaccording to the present disclosure.

FIG. 8 is an example high level diagram illustrating another aspect ofthe present disclosure.

DETAILED DESCRIPTION

In accordance with various aspects of the disclosure, methods,computer-readable media, and apparatuses are disclosed that allowclients to view and report analytic data, identify elements on a page tofacilitate analytic data intake, and generate rules to collect andcustomize analytic data. Clients may use the methods, computer-readablemedia, and apparatuses disclosed herein in conjunction with analyticdata obtained from one or more 3^(rd) party vendors. Further, themethods, computer-readable media, and apparatuses may be implementedwith add-ons to various applications or as a separately compiledapplication. Accordingly, clients may efficiently and effectively manageanalytic data. Herein, analytic data may include web analytics collectedby 3^(rd) party vendors and others. However, web analytics is just oneexample of analytic data. It should be understood that references madeto the “analytic data” being web analytics collected by 3^(rd) partyvendors are non-limiting examples, and that analytic data can be anydata collected and/or displayed by any entity for various purposes(e.g., security purposes, troubleshooting purposes, etc.).

In some aspects of the disclosure, a graphical overlay may be used togenerate rules based on user input in order to collect analytic dataprovided by various vendors. The graphical overlay may be configured sothat a user can view both the graphical overlay and a page from whichthe analytic data displayed in the graphical overlay is extracted. Thegraphical overlay may appear in a pane alongside of the displayed pageor may appear in a window that floats over at least a portion of thedisplayed page. Furthermore, the graphical overlay may be configured torefresh its display as the user navigates from one page to the next.

In the following description of the various embodiments of thedisclosure, reference is made to the accompanying drawings, which form apart hereof, and in which is shown by way of illustration, variousembodiments in which the disclosure may be practiced. It is to beunderstood that other embodiments may be utilized and structural andfunctional modifications may be made.

FIG. 1 illustrates a block diagram of an example computing device 100that may be used according to an illustrative embodiment of the presentdisclosure. The computing device 100 may be any graphical user interface(GUI), such as a personal computer (e.g., a desktop computer), server,laptop computer, notebook, tablet, smartphone, touchscreen, etc. Thecomputing device 100 may have an analytic data manager 101 forperforming methods described herein. The analytic data manager 101 maybe implemented with a processor and memory. Throughout this disclosure,the analytic data manager 101 may be used to reference both acombination of the processor and memory storing instructions executed bythat processor and/or the instructions themselves. The processor of theanalytic data manager 101 may operate in addition to or in conjunctionwith another processor 103 of the computing device 100. Both theanalytic data manager 101 and the processor 103 may be capable ofcontrolling operations of the computing device 100 and its associatedcomponents, including RAM 105, ROM 107, an input/output (I/O) module109, a network interface 111, and memory 113.

The I/O module 109 may be configured to be connected to an input device115, such as a microphone, keypad, keyboard, touch screen, and/or stylusthrough which a user of the computing device 100 may provide input data.The I/O module 109 may also be configured to be connected to a display117, such as a monitor, television, touchscreen, etc., and may include agraphics card. The display and input device are shown as separateelements from the computing device 100, however, they may be within thesame structure.

The memory 113 may be any computer readable medium for storing computerexecutable instructions (e.g., software). The instructions stored withinmemory 113 may enable the computing device 100 to perform variousfunctions. For example, memory 113 may store software used by thecomputing device 100, such as an operating system 119 and applicationprograms 121, and may include an associated database 123.

The network interface 111 allows the computing device 100 to connect toand communicate with a network 130. The network 130 may be any type ofnetwork, including a wide area network (WAN), such as the Internet, anda local area network (LAN). Through the network 130, the computingdevice 100 may communicate with one or more computing devices 140, suchas laptops, notebooks, smartphones, personal computers, servers, etc.The computing devices 140 may also be configured in the same manner ascomputing device 100. In some embodiments the computing device 100 maybe connected to the computing devices 140 to form a “cloud” computingenvironment.

The network interface 111 may connect to the network 130 viacommunication lines, such as coaxial cable, fiber optic cable, etc. orwirelessly using a cellular backhaul or wireless standard 802.11. Insome embodiments, the network interface may include a modem. Further,the network interface 111 may use various protocols, including TCP/IP,Ethernet, File Transfer Protocol (FTP), Hypertext Transfer Protocol(HTTP), etc., to communicate with other computing devices 140.

The computing device 100 may be a mobile device (e.g., a smartphone),and thus, may also include various other components, such as a battery,speaker, and antennas (not shown).

FIG. 2 illustrates an example system 200 for implementing methodsaccording to the present disclosure. As shown in FIG. 2, the system mayinclude a computing device 100, a network 230, an analytics server 250,and a host server 260. Further, one or more other computing devices 140may be connected to the network 230. Also, although only one analyticsserver 250 and one host server 260 are shown in FIG. 2, the computingdevice 100 may communicate with more than one analytics server 250 andmore than one host server 260 via the network 230 or another network.

Referring to FIG. 2, the computing device 100 may be configured todisplay a page 201. In particular, the analytic data manager 101 orprocessor 103 may execute instructions to generate the page 201 on thedisplay 117 of the computing device 100. The analytic data manager 101or processor 103 may execute instructions to run an application (e.g.,Adobe Acrobat, Adobe Reader, Microsoft Word, Microsoft PowerPoint, etc.)or web browser (e.g., Internet Explorer, Mozilla Firefox, Google Chrome,etc.) to view the page 201. Herein, the page 201 refers to the content(e.g., text, images, video, etc.) being displayed within the applicationor web browser. For example, where the page 201 is viewed with AdobeAcrobat (or Adobe Reader), the page 201 is the text and/or image(s)generated by opening a portable document format (PDF) file. Or, forexample, where the page 201 is viewed with a web browser, the page 201may be a web page requested by entering a universal resource locator(URL) into the web browser.

Further, the computing device 100 may also display a graphical overlay203. Herein, the graphical overlay 203 may refer to the graphicaloverlay 203 that is displayed and/or the computer executableinstructions that render/generate the graphical overlay 203. As shown inFIG. 2, the graphical overlay 203 may be formed on the same display 117as the page 201. The analytic data manager 101 may be responsible forrendering/generating the graphical overlay 203. The graphical overlay203 may be formed in a window that “floats” over the page 201. Forexample, the graphical overlay 203 may be in a smaller window than thatof the page 201 so that the graphical overlay 203 covers only a smallportion of the page 201. In some embodiments, the window containing thegraphical overlay 203 may be moved (e.g., dragged with a cursor) to anyposition over the page 201 and/or resized. Alternatively, the graphicaloverlay 203 may be formed in a pane alongside of the page 201. The panecontaining the graphical overlay may be on any side (i.e., left, right,top, or bottom) of the page 201.

Whether the graphical overlay 203 is within a pane or floating window,in one example, the graphical overlay 203 may be generated from the sameapplication or browser that generates the page 201. In such an example,it is not necessary to run a separate application to generate thegraphical overlay 203; instead, the graphical overlay 203 can begenerated automatically when the page 201 is generated or when a userselects to generate the graphical overlay 203 from within theapplication or web browser that displays the page 201. In an alternateexample, the graphical overlay 203 may be generated by a differentapplication than that which generates the page 201. In some embodiments,an icon on a toolbar or an option from a drop-down menu may be providedto allow the user to choose when to display the graphical overlay 203.

The graphical overlay 203 may be configured to receive one or moreinputs (e.g., user inputs). In one example, a user may input variousparameters into the graphical overlay 203 via one or more fields 205within the graphical overlay 203. The field(s) 205 may be any componentthat allows data entry, such as a text box, radio button, drop-downmenu, etc. Data may be entered into the fields 205 using one or moreinput devices 115.

While FIG. 2 shows the analytic data manager 101 included within thecomputing device 100, it is contemplated that the analytic data manager101 may be separate from the computing device 100. In some embodiments,the analytic data manager 101 may be located at a remote locationconnected to the computing device 100 via a network. Additionally,security measures may be implemented to limit operation of the analyticdata manager 101. For example, a username and/or password may need to beentered before the analytic data manager 101 will execute instructionsto generate the page 201 and/or graphical overlay 203. Where theanalytic data manager 101 is remotely located, the username and/orpassword may be for a firewall blocking unauthorized access to theanalytic data manager 101. In this manner, unauthorized users can beprevented from viewing the graphical overlay 203 and performingfunctions associated therewith.

As shown in FIG. 2, the computing device 100 may be connected to ananalytics server 250 and a host server 260 via a network 230, such asthe Internet. Other computing devices 140 may also be connected to thenetwork 230. These other computing devices 140 may be used to view thepage 201.

In some embodiments, the analytics server 250 and host server 260 may bein the same location and may even be integrated together. The analyticsserver 250 may include an analytics processor 252, storage 254, and afirewall 256. The analytics server 250 may be configured to receive andstore analytic data for the page 201 and other pages containing scriptsor cookies for collecting data. Examples of the analytic data include anumber of mouse-overs for certain objects on the page 201, IP addressesof visitors to the page 201, URLs or addresses of other recently visitedpages, load times of page 201, full session replay (i.e., video captureof all cursor movements), etc., and other examples of analytic data thatwould be apparent to one skilled in the art after review of the entiretydisclosed herein. This analytic data may be stored in the storage 254 ofthe analytics server 250. In one example, the analytic data stored inthe analytics server 250 may be received whenever users visit page 201,whether from the computing device 100 displaying the graphical overlay203 or from the other computing devices 140.

Further, the analytics processor 252 may be configured to receiveparameters and other information from the computing device 100 runningthe graphical overlay 203, and to filter the analytic data according tothe received parameters. For instance, the analytics processor 252 mayevaluate all of the mouse-overs and their corresponding IP addresses todetermine the geographical region with the most mouse-overs.Accordingly, data processing (e.g., filtering) can be performed on theanalytics server side using data inputted through the graphical overlay203 to reduce the amount of computation performed by the computingdevice 100.

The firewall 256 may be set up to protect the analytic data collectedand stored by the analytics server 250. Specifically, the firewall maybe configured to prevent access to the analytic data by devices otherthan the computing device 100 running the graphical overlay 203. Thegraphical overlay 203 may include verification information (e.g.,username and password) to automatically authorize the computing device100 to access the analytic data of the analytics server 250, so that auser does not have to provide further verification information once thegraphical overlay 203 is initiated.

Meanwhile, the host server 260 may be any server configured to providepage data for the page 201. Where the page 201 is a webpage, the hostserver 260 may be a web hosting server. In some examples, the webhosting server may be maintained by a third party. When a URL for thepage 201 is entered into a web browser, the web browser may retrieve thepage data from the host server 260. Accordingly, the host server 260 mayinclude storage 264 for storing the page data. Further, the host server260 may include a firewall 266 that restricts permission to edit thepage data stored therein to certain authorized users (e.g., webadministrators). The firewall may require a username and/or passwordbefore allowing a user to modify the page data (e.g., web page sourcecode). In some embodiments, the graphical overlay 203 may includeadditional verification information to automatically authorize thecomputing device 100 to download and upload the page data of the hostserver 260, so that a user does not have to provide further verificationinformation once the graphical overlay 203 is initiated. Thus, thegraphical overlay 203 may automatically upload modified page data,including code for carrying out rules generated with the graphicaloverlay 203. Alternatively, the graphical overlay 203 may upload themodified page data only when the user of the graphical overlay 203desires.

FIG. 3A illustrates a flow diagram for an example process in accordancewith aspects of the present disclosure. In FIG. 3A, the process beginswith step 301. At step 301, an application, such as Adobe Acrobat (i.e.,a non-browser application), or a web browser, such as Internet Explorer,is initiated. The application or web browser may be initiated inresponse to a user selection or upon turning on the computing device100. Step 301 may be performed by executing computer-readableinstructions stored locally on the computing device 100 or remotely on aserver or other computing device 140.

In step 302, a page 201 is displayed within the application or webbrowser. To display the page 201, the application or web browser readsdata corresponding to a user selection. For example, if a user enters aURL into a web browser, the web browser uses the Hypertext TransferProtocol (HTTP) to retrieve HTML data corresponding to the particularURL and renders/interprets the HTML data to display the appropriate webpage. The data for generating the content of the page 201 may be storedlocally on the computing device 100 or remotely on a server (e.g., hostserver 260) or other computing device 140.

In step 303, a graphical overlay 203 is displayed. The same applicationor web browser that generates the page 201 may generate the graphicaloverlay 203. More specifically, the application or web browser initiatedin step 301 may also interpret computer readable instructions fordisplaying the graphical overlay 203. This may be implemented byproviding a software add-on (e.g., a software plug-in) to theapplication or web browser for processing instructions to generate thegraphical overlay 203. This software add-on may be implemented withAdobe Flash, Adobe Flex, Adobe Integrated Runtime (AIR), JavaScript,Applets, or any other platform that can interface with the applicationor web browser to provide the graphical overlay 203. In someembodiments, generation of the graphical overlay 203 may be triggered bya tag within the data of the page 201. Thus, the application or browsermay generate the graphical overlay 203 in response to interpreting thetag among the page data. Various graphical overlays 203 may therefore betriggered by accessing various pages 201. In one or more arrangements,even different web pages of the same website may cause differentgraphical overlays 203 to be generated. In some examples, a mappingtable (or comparable structure) may be used to maintain a map of webpages to graphical overlays. In light of the above implementations, itshould be understood that a separate program does not have to beexecuted to generate the graphical overlay 203. Nevertheless, in someembodiments, the graphical overlay 203 can be generated by a separateapplication that is capable of communicating with the application or webbrowser.

Further, step 303 may be performed at the same time as step 302. Thatis, both the graphical overlay 203 and page 201 may be generated anddisplayed in response to the same event (e.g., a user selection to run aweb browser).

Alternatively, step 303 may be performed to display the graphicaloverlay 203 in response to a particular user selection. In someembodiments, a user may select an icon on a toolbar or an option from adrop-down menu within the compiled application or web browser in orderto trigger the generation of the graphical overlay 203. Further, beforegenerating the graphical overlay 203, a user may be prompted to provideauthentication information (e.g., a username and password). Accordingly,the graphical overlay 203 may only be displayed upon proper entry ofauthentication information thereby preventing unauthorized users fromviewing and using the graphical overlay 203.

Once the graphical overlay 203 is displayed, a user may input data intothe graphical overlay at step 304. The input data acquired at step 304may include graphical overlay design information, report layoutinformation, analytic data type information, analytic data storagelocation information, object identification information, parameterinformation, backend system information, user-specific information,external data source information, and/or event information. Herein, thegraphical overlay design information refers to information that controlsthe design of the graphical overlay 203. Such information may includecolor, font, size, etc., which determine the format of the graphicaloverlay. The report layout information refers to information thatindicates the desired layout of the graphical overlay 203, includinginformation indicating how the analytic data is displayed. For example,report layout information may indicate that the analytic data should beshown in a bar graph, pie chart, spreadsheet, line graph, etc. Theanalytic data type information refers to information specifying a typeof analytic data that is desired to be collected or displayed in thegraphical overlay 203. For instance, the analytic data type informationmay indicate that analytic data regarding mouse-overs, page load times,IP addresses of visitors, the URLs of pages visited prior to the currentpage 201, etc. are desired. Analytic data storage location informationrefers to information indicating where collected analytic data is to bestored and/or from where the analytic data to be displayed is retrieved.Accordingly, the analytic data storage location information may be auniform resource identifier (URI) (e.g., a URL) or another memoryaddress. Object identification information refers to informationidentifying objects/elements/items within the displayed page 201 forwhich analytic data is desired. Objects may include links,advertisements, text, images, video, audio, or any specified area of adisplayed page 201. Parameter information refers to information used forfiltering analytic data during analytic data collection and/orreporting. The parameter information may specify one or more parameters,which include percentages, thresholds, intervals, and other limits. Thebackend system information may include details regarding changes made toa specific page (e.g., changes to the source code or scripts embedded intags of a webpage). In some embodiments, the backend system informationmay include or be derived from a change log file of a content managementsystem. Such backend system information allows a user to view a historyof changes made to a particular page through the graphical overlay 203.User-specific information may include comments or notes of a specificuser of the graphical overlay 203. External data source information mayinclude information identifying external data sources related to thedisplayed page (or related to elements of the page) and otherinformation regarding the external sources (e.g., status information,contact information, etc.). Event information refers to any informationthat characterizes an event, which is used to trigger the collection ofanalytic data. Event information may include information related to oneor more events, the relationship between the events, and/or anyinformation that defines conditions for triggering analytic datacollection. Event information may indicate whether events are to occursimultaneously, in a particular sequence, or with no particularrelationship. As described below, one or more types of the aboveinformation may be used to generate rules to facilitate analytic datacollection.

Further, in step 304, one or more inputs of each of the graphicaloverlay design information, report layout information, analytic datatype information, analytic data storage location information, objectidentification information, parameter information, and event informationmay be acquired. The user may input data using a keyboard, mouse, touchscreen, stylus, etc. As discussed above, the graphical overlay 203 mayinclude various fields 205 for receiving the inputted data.

In some embodiments, the user may input data directly into the fields205 of the graphical overlay 203. For example, the user may click on afield and then type data into the field, or select an input from a listof available inputs. Where a list of available inputs is provided, thelist displayed in the graphical overlay 203 may depend on the content ofthe simultaneously displayed page 201. For instance, where the page 201is a webpage, the graphical overlay 203 may display a list of hyperlinkscontained within the webpage.

Alternatively, the user may input data into the graphical overlay 203 byselecting one or more objects/elements/items appearing on the page 201.For example, the user may select a link from within a webpage by firstactivating a selection tool from within the graphical overlay 203, whichmay modify the appearance of a cursor. Then, the user may move a mouseto position the cursor over the desired link on the webpage, and clickthe mouse to select the desired link. Clicking on the link in thewebpage may populate a field within the graphical overlay 203 toindicate selection of the desired link. For example, the destinationaddress (e.g., URL) of the link, the text/image that forms the link, oranother symbol that represents selection of the link may appear in thegraphical overlay 203. The graphical overlay 203 can then displayanalytic data related to the link or generate rules for collectinganalytic data corresponding to the selected link as explained in furtherdetail below.

It should be understood that the above example is just one way in whichobjects/elements/items may be inputted into the graphical overlay 203.Various methods for selecting objects/elements/items can be used, suchas drag-and-drop, drawing a box around the desired object(s), sessioncapture (i.e., capture all/most movements within a certain time frame),etc. In order to enable selection of elements within a web page, thegraphical overlay 203 may incorporate or interface with a parser thatmay parse HTML and/or XML elements using the Document Object Model(DOM). After parsing the web page using the DOM, the graphical overlay203 may import HTML and/or XML elements from the DOM document. Here,importing HTML and/or XML elements may include replicating the selectedHTML and/or XML elements or generating an object or other informationthat may subsequently identify selected HTML and/or XML elements.

In some embodiments, the input data may not be shown in the graphicaloverlay 203. Even though the graphical overlay 203 may receive inputdata when, for example, a user clicks on an object in the page 201, onlythe analytic data corresponding to the input data (i.e., not the inputdata itself) may be displayed. However, in such cases, the graphicaloverlay 203 is still considered to have received the input data becausethe computer readable instructions associated with the graphical overlay203 are responsible for handling the input data.

In step 305, rules may be generated based on the input data obtained instep 304. More specifically, the input data may be used to generatecomputer-readable instructions (i.e., program instructions) that whenexecuted can facilitate the collection and display of analytic data. Inparticular, the input data may be used to generate code in JavaScript,Adobe Flash, etc. For example, the input data may be used to generatecode that includes a JavaScript function capable of detecting one ormore various events, such as mouse-overs or visits to the page 201. Forthe purpose of generating code, the graphical overlay 203 may haveaccess to pre-written program instructions (e.g., JavaScript functionsin a JavaScript library), which may be stored at the computing device100 or at a remote location, such as a server of a web analytics vendor.The graphical overlay 203 can embed one or more of these pre-writtenprogram instructions (e.g., functions) into the data of the page 201 orinsert a pointer (e.g., a script tag referencing code stored on a remoteserver) to one or more of these pre-written program instructions intothe data of the page 201. Thus, the pre-written program instructions maybe inserted into the file including the data for generating the page 201so that the pre-written instructions can be interpreted along with thepage data when later accessed. Further details on the process ofgenerating rules are provided below with respect to FIG. 3B.

One or more rules may be generated in step 305. That is, one or moreblocks of code, each including one or more functions, may be embeddedinto a page 201 at step 305. Further, the generated rules may performvarious tasks, such as setting up conditions for acquiring analytic dataand filtering analytic data. For example, a user may input eventinformation into the graphical overlay 203 to generate a rule thatdetects when a mouse is positioned over a specified object on the page201 for a particular period of time, while another rule is generated tolimit the analytic data to mouse-overs by visitors having internationalIP addresses. Accordingly, through customizing the collection ofanalytic data, a user of the graphical overlay 203 can evaluate theanalytic data from many angles.

Additionally, previously existing rules may be modified in step 305. Thegraphical overlay 203 may automatically display one or more rules thatexist for the currently displayed page 201. Alternatively, existingrules are shown in the graphical overlay 203 in response to a userrequest or user selection of an object related to the existing rule. Inother words, if analytic data is already being collected for mouse-oversof a particular element within page 201, then when a user selects theparticular element, the graphical overlay 203 may indicate thatmouse-overs are being detected for that element. Moreover, the graphicaloverlay 203 may display the analytic data and information associatedwith the current rule, so that a user can assess whether the rule isproviding useful data.

In step 306, the page data including the newly generated rules may bestored. Step 306 may be performed automatically after each rule isgenerated or in response to a user instruction. In some embodiments, thepage data having the new rules may be stored on the same computingdevice 100 which was used to input data to create the rules.Alternatively or additionally, the page data having the new rules may bestored on a remote host server/computer. For example, where the pagedata having the rules corresponds to modified source code for a webpage,the modified source code may be uploaded to the host server 260 so thatanalytic data can be collected according to the new rules.

Once the page data, including the new rules, are stored, analytic datamay be collected according to the new rules at step 307. Morespecifically, scripts (e.g., JavaScript functions) embedded within thepage data may operate to collect analytic data according to the newrules whenever the page 201 is accessed. Moreover, each script mayinclude one or more URIs (e.g., URLs) indicating one or moredestinations for the analytic data. Therefore, a script may transmit thesame analytic data to more than one analytics server 250. Also, thedifferent scripts within the page data may transmit the collectedanalytic data to different destinations. Thus, a user of the graphicaloverlay 203 may design the page 201 to include one script that transmitsanalytic data to one analytics server 250 and another script thattransmits different analytic data to a different analytics server 250.

In step 308, analytic data may be requested. The request for analyticdata may be transmitted from the graphical overlay 203 through thenetwork 230 to the analytics server 250. The request for analytic datamay be sent periodically at defined intervals or in response to a userinput into the graphical overlay 203. The request may also be sentwhenever a user first navigates to a page 201 or at some set timethereafter.

In some embodiments, the request for analytic data sent in step 308includes input data received in step 304. In such embodiments, theanalytics server 250 may use the input data sent with the request tofilter the analytic data previously collected. Therefore, the analyticsserver 250 may transmit only the filtered analytic data back to thegraphical overlay 203. For example, the request for analytic data mayinclude a date range, so that only analytic data collected within thatrange is transmitted back to the graphical overlay 203.

In one or more other embodiments, the request for analytic data may notinclude input data. Thus, the analytics server 250 may return allanalytic data for the particular page 201. In this case, the graphicaloverlay 203 may filter all of the analytic data according to the datainputted at step 304. For example, the graphical overlay 203 may grabonly IP addresses of web page visitors from among various types ofanalytic data received based on inputted data.

Whether the analytic data is filtered by the graphical overlay 203 orthe analytics server 250, it may be displayed in the graphical overlay203 at step 309. In certain aspects of the disclosure, the graphicaloverlay 203 may be displayed while the user navigates through pages 201.That is, as a user navigates from one page to the next, the graphicaloverlay 203 may update its display to show analytic data correspondingto the currently displayed page.

It should be understood that the process in FIG. 3A is an example, andthat certain steps may be reordered, omitted, added, or combined. Forexample, steps 305 and 306 may be omitted in an embodiment where thegraphical overlay is used for the sole purpose of viewing analytic datacollected according to previously set rules. Also, step 309 may beperformed immediately after the graphical overlay is displayed in step303.

FIG. 3B illustrates a flow diagram for an example process of generatingrules. The steps of FIG. 3B may be performed at step 305 of FIG. 3A. Asshown in FIG. 3B, the process of generating rules begins at step 311 inwhich page data of the page 201 being displayed is received. Where thepage 201 is a web page, this page data refers to the source code used bya web browser to interpret the web page.

In step 313, the graphical overlay 203 receives program instructions. Insome embodiments, the graphical overlay 203 may retrieve computerprogram instructions (e.g., a program function) from a library ofpre-written program instructions. Further, the graphical overlay 203 maysearch for the appropriate program instructions based on data inputtedinto the graphical overlay 203. For example, if inputted data includesanalytic data type information indicating that mouse-overs are desired,then the graphical overlay may retrieve a mouse-over function (e.g.,JavaScript mouseover( ) function) from a library of available programinstructions. Also, a user may use the graphical overlay 203 to selectthe desired program instructions from the library of available programinstructions. For instance, a user may select program instructions bychoosing a name representing the program instructions from a drop-downmenu appearing in the graphical overlay 203. In some embodiments, thelibrary of available program instructions may be provided by one or morethird party vendors (e.g., web analytics vendors). Also, the pre-writtenprogram instructions may be offered in various computer languages (e.g.,JavaScript, Adobe Flash, etc.). The library may contain scripts forperforming any function with respect to any object (e.g., JavaScriptobjects, browser objects, DOM objects, etc.). For example, the librarymay include scripts for executing any type of event handler/listenerand/or document object methods, such as getElementsByTagName( ), write(), open( ), etc. One of skill in the art will appreciate after review ofthe entirety disclosed herein that numerous examples of event handlersand methods are known in the art and are contemplated herein inaccordance with the disclosure.

In some embodiments, multiple libraries may be formed on the basis ofwhich browser supports the methods and event handlers/listenerscontained therein. For example, one library may be configured to supportMozilla Firefox™, while another library may be configured to supportMicrosoft Internet Explorer™.

Additionally, or alternatively, the graphical overlay may allow a userto enter program instructions. That is, the graphical overlay 203 mayinclude an area that permits a user to supplement the providedinformation by writing program instructions in one or more languages(e.g., JavaScript, Adobe Flash, etc.).

In step 315, after the program instructions are received from a library,the program instructions may be modified based on the data inputted atstep 304. More specifically, the input data may be used to createparameters, variables, and/or constants for a particular pre-writtenfunction obtained from the library in step 313. For example, ifmouse-overs for a particular object are desired, then the programinstructions for detecting mouse-overs (e.g., a JavaScript mouseover( )function) may be modified to detect mouse-overs for the particularobject identified by using object identification information for theparticular object inputted at step 304 as a constant within the programinstructions. Also, when a certain number of mouse-overs of theparticular object are to be detected, input data entered into thegraphical overlay 203 indicating the certain number may be included as aparameter in a call to the JavaScript function. Although the mouseover() function is described in the example above, the graphical overlay 203may modify any event handler/listener.

Further, step 315 may be performed to modify an application or browser'sbuilt in methods. The application or browser's built in methods may bemodified with program instructions received in step 313. Themodifications may provide various ways to listen to one or more eventsand represent those events in the overlay 203. More specifically,modified program instructions may be generated to interpret objects andevents from, for example, the DOM of a particular page 201. For example,known program instructions may be modified to listen to certain DOMevents and detect an event (e.g., an AJAX event) based on a series ofDOM events. The manner in which the modified program instructions aregenerated may vary. The modified program instructions may be generatedby adding or removing a specific event listener using, for example, ageneric add or remove event listener method (e.g., the addEventListener() and the removeEventListener( )) for a target event. That is, targetevents specified by data inputted at step 304 may be used as parametersfor event listeners. Moreover, the generic event listeners may bemodified with or called from within additional code directing thebrowser or application on how it should handle the results of thegeneric event listeners. This additional code may be a function that ismodified to include event listeners based on data inputted at step 304.For example, a predefined function may exist for outputting data passedto it from any event listener, and therefore, step 315 may be performedto specify the event listener called by such function. The function maybe a newly added function or an existing function of the browser.

Then, in step 317, the program instructions (modified or unmodified) areembedded into the page data of the page 201. In some embodiments, theuser of the graphical overlay 203 may choose where in the page data toembed the modified program instructions. In other embodiments, thegraphical overlay 203 may automatically determine where to embed themodified program (e.g., at or near the top of the page data).

Where the page 201 is a web page, the pre-written program instructionsmay be inserted into the source code of the web page. For example, ifanalytic data indicating the number of mouse-overs for a particularelement or object is desired to be collected, the program instructionsfor collecting such information may be embedded into the source code instep 317. The graphical overlay 203 may implement a document objectmethod (e.g., write ( ), writeIn( ), etc.) to embed scripts for eventhandling/listening and performing functions to output results of eventlisteners. The graphical overlay 203 may also embed one or more tags.The tag(s) may provide access to the data collected by the eventhandlers/listeners embedded into the page 201. Accordingly, thegraphical overlay 203 may function as an XML editor to insert tags intothe source code that may call the pre-written program instructions.Depending on the analytic data to be collected, the pre-written programinstructions may be inserted into the header, body, or other part of theweb page. For instance, if the analytic data to be collected relates towhether a particular link is clicked, then the pre-written programinstructions may be inserted into the body of the current webpage. As aresult, when a page 201 having embedded pre-written program instructionsis accessed, the pre-written program instructions may operate to detectevents and collect analytic data.

It should be understood that the process in FIG. 3B is an example, andthat certain steps may be reordered, omitted, added, or combined. Forexample, step 311 may be performed after the program instructions aremodified in step 315. Also, in some embodiments, the programinstructions may not be modified, and therefore, step 315 may beomitted.

FIG. 4 is an example high level diagram illustrating a function of thegraphical overlay 203. More specifically, FIG. 4 shows that thegraphical overlay 203 may be used to select an object from within a page201. In FIG. 4, the page 201 is a web page accessed with a web browserof the computing device 100. The same web browser that accesses the webpage 201 may also render/interpret the graphical overlay 203. As aresult, the web browser may display the graphical overlay 203 as awindow that floats over the web page 201. Accordingly, both the web page201 and graphical overlay 203 may be simultaneously displayed.

As shown in FIG. 4, the web page 201 contains a number of objects, suchas icons for clothing items that may be purchased. A user may viewanalytic data for a particular object by selecting one of the objectswithin the web page 201. Here, FIG. 4 shows that the graphical overlay203 is being used to select a shopping cart icon having an associatedhyperlink. In order to select the shopping cart, a user may first clickon a selection tool 207 from within the graphical overlay 203. Theselection tool 207 may change the shape of the cursor and may allow theuser to select an object without navigating away from the current webpage 201 (i.e., may not follow the hyperlink). Upon selection of theshopping cart icon, a field 205 a for inputting an object may bepopulated. This is represented in FIG. 4 by insertion of the words“shopping cart” into the object field 205 a of the graphical overlay203. Further, the graphical overlay 203 may provide an analytic datatype field 205 b to allow the user to view a desired type of analyticdata for the selected object. For example, the user may choose to viewmouse-overs for the shopping cart by selecting “mouse-overs” from adrop-down menu in field 205 b. As a result of entering data into boththe object field 205 a and the analytic data type field 205 b, thegraphical overlay 203 may display a number of mouse-overs for theshopping cart object in a result field 205 c.

In some embodiments, the graphical overlay 203 may automatically send arequest to the analytics server 250 in response to the entering of datainto both the object field 205 a and the analytic data type field 205 b.The analytics server 250 may then respond to the request with theresults, which are displayed in the result field 205 c. Alternatively,in response to the entering of data into both the object field 205 a andthe analytic data type field 205 b, the graphical overlay 203 mayrequest all analytic data from the analytics server 250 and determinethe desired results itself. Still, in other embodiments, the graphicaloverlay 203 may have previously obtained all of the analytic data fromthe analytics server 250 (e.g., when the web page 201 was firstaccessed), and thus, the graphical overlay 203 may display the desiredresults without having to send a subsequent request.

Furthermore, the graphical overlay 203 may include instructions forcontinuously updating the desired results. For example, the graphicaloverlay 203 may include instructions to periodically send a request tothe analytics server 250 after a predetermined period of time in orderto obtain the most recent analytic data. Additionally, or alternatively,the analytics server 250 may push updated analytic data to the graphicaloverlay 203. In any case, referring to FIG. 4, the number of mouse-oversfor the shopping cart shown in the result field 205 c can be refreshedafter a relatively short predetermined period of time. Thus, thegraphical overlay 203 may display the desired results in real time.

FIG. 5 is an example high level diagram illustrating another aspect ofthe disclosure. In particular, FIG. 5 illustrates the ability of acomputing device 100 to continuously display the graphical overlay 203while a user navigates a plurality of pages 201. As shown in FIG. 5, thecomputing device 100 may display a first web page 201A using a webbrowser. The web browser may also execute computer readable instructionsto generate the graphical overlay 203 for displaying analytic data ofthe first web page 201A currently being viewed. Here, the graphicaloverlay 203 shows, for example, analytic data, such as a number ofmouse-overs, for various objects (e.g., a t-shirt icon, a pants icon,and a hat icon) on the first web page 201A. Again, the graphical overlay203 floats over the first web page 201A so that the content of the firstweb page 201A and the corresponding analytic data in the graphicaloverlay 203 are simultaneously displayed. Further, the graphical overlay203 does not reduce the functionality of the web browser. That is, theweb browser may perform all of the functions that it typically would beable to. Accordingly, the user may select a link from within the firstweb page 201A to navigate to a second web page 201B. For example, asshown in FIG. 5, a hat icon having a hyperlink may be selected tonavigate to the second web page 201B corresponding to the hyperlink ofthe hat icon.

In response to a user's decision to navigate to a second web page 201B,the web browser may update the graphical overlay 203. In other words,the graphical overlay 203 may refresh its display to show analytic data,such as a number of mouse-overs, for objects currently being displayedon the second web page 201B (e.g., a cowboy hat icon, a baseball capicon, a fedora icon, and a winter hat icon). The computer readableinstructions (i.e., computer code) for running the graphical overlay 203may communicate with the web browser displaying the first and second webpages 201A and 201B so that the graphical overlay 203 may updateautomatically upon navigating to the first and second web pages 201A and201B. Each time the user navigates to a new web page, the graphicaloverlay 203 may send a request to the analytics server 250 for analyticdata corresponding to the new page or the analytics server 250 mayautomatically push the new analytic data to the graphical overlay 203.Accordingly, the graphical overlay 203 may display analytic data in realtime.

FIG. 6 is an example high level diagram illustrating another function ofthe graphical overlay 203. More specifically, FIG. 6 illustrates thatthe graphical overlay 203 may generate rules to facilitate analytic datacollection. FIG. 6 shows a web page 201 similar to those shown in FIGS.4 and 5, and a graphical overlay 203 floating over the web page 201.

The number and type of fields shown in FIG. 6 represent an exampleembodiment, and more or fewer fields may be used to generate rules. Thegraphical overlay 203 in FIG. 6 includes an object field 205 a, an eventinformation field 205 d, and a storage location field 205 e. The objectfield 205 a may be similar to the object field described with respect toFIG. 4. Moreover, as explained above, the object field 205 a may bepopulated using a selection tool 207 to select a shopping cart iconwithin the web page 201.

Additionally, here the graphical overlay 203 includes the eventinformation field 205 d for receiving data regarding a type of event todetect. For example, as shown in FIG. 6, the event information mayindicate that mouse-overs are to be detected. The event informationfield 205 d may be implemented with a drop-down menu thereby allowingthe user to select from a given list of events that may be detected. Thetype of events that may be detected may depend on the different blocksof code that are available to the graphical overlay 203. In other words,in some embodiments, the graphical overlay 203 may only have access tocomputer code that detects IP addresses and mouse-overs, and therefore,in such embodiments, the drop-down menu may only allow a user to chooseevent information indicating whether IP addresses and/or mouse-overs areto be detected.

Further, the graphical overlay 203 includes the analytic data storagelocation information field 205 e. The analytic data storage locationinformation field 205 e receives a user input indicating where theanalytic data to be collected should be stored. The graphical overlay203 may be configured to interface with a number of different vendorsthat provide web analytics. Thus, the graphical overlay 203 may includethe analytic data storage location information field 205 e to designatewhich of the multiple vendors should store the collected analytic data.The analytic data storage location information field 205 e may alsoallow a user to choose a private storage location (e.g., a privateserver) to store the analytic data.

In some embodiments, a submit button 209 may exist within the graphicaloverlay 203 so that the user may confirm that he/she desires to generatea rule according to the input data within one or more of the fields 205.Upon selection of the submit button 209, the graphical overlay 203 mayinsert a script into the HTML source code of the web page 201 and uploadthe modified source code to a host server 260 so that analytic data maybegin to be collected in accordance with the newly generated rule. Thus,the graphical overlay 203 may allow a user to generate rules forcollecting analytic data from within the actual environment that theanalytic data is collected.

FIG. 7 illustrates an example system 700 for implementing methodsaccording to the present disclosure. As shown in FIG. 7, the system mayinclude a smartphone 731, a cell tower 733, a cellular backhaul 735, agateway GPRS support node (GGSN) 737, a network 730 (e.g., theInternet), an analytics server 750, and a host server 760. Further, oneor more other computing devices 140 may be connected to the network 730.

In the example system 700, the smartphone 731 may wirelessly communicatewith the cell tower 733. Meanwhile, the cell tower 733 may be connectedto the GGSN 737 through the cellular backhaul 735. The cellular backhaul735 may include both wired and wireless connections. The GGSN 737 may beconfigured to interface the cellular backhaul 735 with the network 730,such as the Internet. Accordingly, the smartphone 731 may communicatewith the web analytics server 750 and host server 760 to perform one ormore of the various functions disclosed herein.

Referring to FIG. 8, the smartphone 731 may be configured in a mannersimilar to the computing device 100 of FIG. 1. Thus, the smartphone 731may include a display 717 for displaying a page 801. In particular, theanalytic data manager 101 or processor 103 (not shown) of the smartphone731 may execute instructions to generate the page 801 on the display 717when a user selects a button to run a specially designed application(hereinafter referred to as “the analytic data manager application”).The analytic data manager application may be built to run as a compiledapplication on a platform, such as Adobe Integrated Runtime (AIR) and/ormay be compatible with various mobile device operating systems, such asiOS, Android, Windows Phone, BlackBerry OS, etc.

As shown in FIG. 8, the analytic data manager application may load apage 801, including information related to a website that may be managedby a user of the smartphone having the analytic data managerapplication. Here, the page 801 refers to all items/elements currentlyviewable on the display 717. Thus, while the page 801 may display itemsfound on a web page, it may not actually be a web page (i.e., page 801may not be written in HTML). Instead, the page 801 may be written inanother language that may be rendered/interpreted by the analytic datamanager application.

FIG. 8 further shows that the analytic data manager application maygenerate a graphical overlay 803. The graphical overlay 803 may appearin a window that floats over the page 801 or in a pane alongside of thepage 801 so that the page 801 and graphical overlay 803 aresimultaneously displayed. The analytic data manager application mayautomatically display the graphical overlay 803 whenever the applicationis run or may display the graphical overlay only when a user chooses toview the graphical overlay 803.

The graphical overlay 803 may perform any of the functions as thegraphical overlay 203 described above. For example, as shown in FIG. 8,the graphical overlay may display analytic data that is received from ananalytics server 750, which collects the analytic data for the page 801.Also, the graphical overlay 803 may, for example, generate rules forcollecting analytic data of specified objects within the page 801 basedupon input data entered into the graphical overlay 803. Morespecifically, the analytic data manager application may take the inputdata entered into the graphical overlay 803 and insert a script into thepage data for the page 801. Further, the analytic data managerapplication may be configured to publish (or upload) the modified pagedata for the page 801 to the host server 760.

Aspects of the invention have been described in terms of illustrativeembodiments thereof. Numerous other embodiments, modifications, andvariations within the scope and spirit of the appended claims will occurto persons of ordinary skill in the art from a review of thisdisclosure. For example, one of ordinary skill in the art willappreciate that the steps illustrated in the illustrative figures may beperformed in other than the recited order, and that one or more stepsillustrated may be optional in accordance with aspects of the invention.

1. A non-transitory computer-readable medium storing computer-executableinstructions, which when executed by a processor, cause a computingdevice to perform steps comprising: displaying a graphical overlay overat least a portion of a page displayed on a graphical user interfaceaccording to page data; receiving data inputted into the graphicaloverlay, the inputted data including analytic data type informationindicating a specific type of analytic data to be collected; identifyingprogram instructions from a library; modifying the identified programinstructions based on the inputted data to enable them to collect thespecific type of analytic data when executed; embedding the modifiedprogram instructions into the page data of the page under the graphicaloverlay so that, when the page is accessed, the embedded modifiedprogram instructions begin to collect the specific type of analytic dataand cause the specific type of analytic data to be stored for subsequentreview; receiving analytic data corresponding to the displayed page froma remote server; and displaying at least a portion of the analytic datain the graphical overlay based on the inputted data.
 2. Thenon-transitory computer-readable medium of claim 1, wherein thecomputer-executable instructions further cause the computing device toperform steps comprising: receiving a command to activate a selectiontool from within the graphical overlay; receiving object informationindicating a specific object selected from within the page using theselection tool; and modifying the identified program instructions toenable them to collect the specific type of analytic data for thespecific object when executed.
 3. The non-transitory computer-readablemedium of claim 1, wherein the computer-executable instructions furthercause the computing device to perform steps comprising: uploading thepage data having the modified program instructions embedded therein toanother remote server.
 4. The non-transitory computer-readable medium ofclaim 1, wherein the page is a web page displayed in a web browser, andthe graphical overlay is interpreted by the web browser.
 5. Thenon-transitory computer-readable medium of claim 1, wherein the page isdisplayed in an application, and the graphical overlay is interpreted bythe application.
 6. The non-transitory computer-readable medium of claim1, wherein the modified program instructions are executed using one ofJavaScript and Adobe Flash.
 7. A computer-assisted method comprising:displaying a page using a computer processor; displaying a graphicaloverlay over at least a portion of the page using the computerprocessor; receiving data inputted into the graphical overlay, theinputted data including analytic data type information indicating aspecific type of analytic data to be collected; and generating, usingthe computer processor, one or more rules for collecting analytic databased on the inputted data, wherein the generating of the one or morerules comprises: receiving page data, which defines the page;identifying program instructions from a library based on the analyticdata type information; modifying the identified program instructionsbased on the inputted data to enable them to collect the specific typeof analytic data when executed; and embedding the modified programinstructions into the page data of the page under the graphical overlayso that, when the page is accessed, the embedded modified programinstructions begin to collect the specific type of analytic data andcause the specific type of analytic data to be stored for subsequentreview.
 8. The method of claim 7, wherein the page is displayed with aweb browser, and the graphical overlay is an add-on to the web browser.9. The method of claim 7, wherein the page is displayed in anapplication, and the graphical overlay is an add-on to the application.10. The method of claim 7, wherein the inputted data is received as aresult of selecting an object from within the page.
 11. The method ofclaim 7, further comprising: receiving analytic data corresponding tothe displayed page from a remote server; and displaying at least aportion of the analytic data in the graphical overlay based on theinputted data.
 12. (canceled)
 13. The method of claim 7, furthercomprising transmitting the page data having the modified programinstructions embedded therein to a server.
 14. The method of claim 7,further comprising collecting the analytic data, transmitted from one ormore computing devices that execute the modified program instructions,in the remote server.
 15. The method of claim 7, wherein the one or morerules includes one of: a first rule that collects click information fora specific object within the page, a second rule that collects apreviously visited page, a third rule that collects a page load time, afourth rule that collects a mouse-over for a specific object within thepage, a fifth rule that collects an IP address of a visitor to the page,and a sixth rule that collects user identification information of aviewer of the page.
 16. The non-transitory computer-readable medium ofclaim 1, wherein the analytic data displayed in the graphical overlay isupdated in real time.
 17. The method of claim 7, further comprising:displaying at least a portion of first analytic data corresponding tothe displayed page in the graphical overlay; displaying a second page inresponse to a selection of an object from within the page; receivingsecond analytic data corresponding to the second page from a remoteserver; and displaying at least a portion of the second analytic data inthe graphical overlay based on the inputted data.
 18. An apparatuscomprising: a communication interface for communicating with a remoteserver; a processor; and memory storing computer-executable instructionsthat, when executed by the processor, cause the apparatus to: display apage on a graphical user interface; display a graphical overlay over atleast a portion of the page; receive data inputted into the graphicaloverlay, the inputted data including analytic data type informationindicating a specific type of analytic data to be collected; identifyprogram instructions from a library; modify the identified programinstructions based on the inputted data to enable them to collect thespecific type of analytic data when executed; and embed the modifiedprogram instructions into code of the page under the graphical overlayso that, when the page is accessed, the embedded modified programinstructions begin to collect the specific type of analytic data andcause the specific type of analytic data to be stored for subsequentreview.
 19. The apparatus of claim 18, wherein the communicationinterface is a wireless interface configured to transmit and receivesignals over a cellular backhaul.
 20. The apparatus of claim 18, whereinthe computer-executable instructions are configured to be interpreted byat least one of: Adobe Flash, Adobe Flex, and Adobe Integrated Runtime(AIR), and configured to run on a platform comprising at least one of:iOS, Windows Mobile, Windows Phone, Android, and Blackberry OS.
 21. Themethod of claim 7, wherein the graphical overlay includes a field havinga plurality of options based on characteristics of the page, and whereinthe plurality of options of the field change when the page underneaththe graphical overlay changes.
 22. The method of claim 7, furthercomprising: parsing the page to detect a plurality of objects within thepage; and importing information corresponding to one or more selectedobjects from among the plurality of detected objects.
 23. The method ofclaim 7, further comprising: displaying at least a portion of analyticdata in the graphical overlay corresponding to the page, where theportion of analytic data is filtered based on criteria specified in thegraphical overlay; displaying a second page in response to a selectionof an object from within the page; receiving second analytic datacorresponding to the second page from a remote server; and displaying atleast a portion of the second analytic data in the graphical overlay,where the portion of the second analytic data is filtered based on thespecified criteria.
 24. The non-transitory computer-readable medium ofclaim 1, wherein the inputted data includes additional informationassociated with the analytic data type information, wherein theidentifying program instructions from the library is based on theanalytic data type information, and wherein the modifying the identifiedprogram instructions is based on the additional information.
 25. Thenon-transitory computer-readable medium of claim 24, wherein theadditional information includes object identification informationidentifying one or more objects within the page for which the specifictype of analytic data is collected.
 26. A method to allow a user togenerate analytics-collection rules for an object on a web page fromwithin an environment where analytic data is to be collected, whereinthe object on the web page is not configured to collect analytics data,the method comprising: providing a graphical overlay corresponding tothe web page where the analytic data is to be collected; configuring thegraphical overlay to include at least an object field and an eventinformation field, wherein the event information field corresponds to atype of event to detect; receiving input of the user identifying theobject, from among a plurality of objects on the web page, correspondingto the object field; receiving input of the user corresponding to atleast the event information field; generating a script corresponding toone or more analytic data collection rules for the identified objectbased on the data in fields of the graphical overlay; and inserting thescript into the web page so that analytics data about the object on thewebpage can begin to be collected in accordance with the analytic datacollection rules, wherein before the step of generating the script, theweb page was not configured to collect analytics data about the object.27. The method of claim 26, wherein the graphical overlay is displayedover the web page.
 28. The method of claim 26, wherein the eventinformation field indicates that mouse-overs are to be detected.
 29. Themethod of claim 26, wherein the configuring the graphical overlayfurther comprises configuring the graphical overlay to include a storagelocation field, wherein the storage location information fieldcorresponds to where the analytic data to be collected will be stored;and the method further comprising: receiving input of the usercorresponding to the storage location field.
 30. The method of claim 29,wherein the analytic data storage location information field indicatesone of: one of multiple vendor servers to store the analytic data to becollected, and a private storage location to store the analytic data tobe collected.